package com.suwish.pc.ui.component.tab;

import java.awt.Color;

import javax.swing.Icon;
import javax.swing.JPanel;

/**
 * 
 * 
 * @author Min
 *
 */
public abstract class UITabPanel extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public UITabPanel(){
		setBackground(Color.WHITE);
		
	}

	/**
	 * 控件名，其唯一性的标识，用于查找。</p>
	 * 
	 * 不会直接显示在界面上
	 * 
	 */
	public abstract String getName();
	/**
	 * 
	 * Tab的ToolTip提示
	 * @return
	 */
	public abstract String getTip();
	/**
	 * 
	 * Tab的显示标题
	 * 
	 * @return
	 */
	public abstract String getTitle();
	/**
	 * 
	 * Tab的图标()如果有
	 * @return
	 */
	public abstract Icon getIcon();
	/**
	 * 
	 * Tab的类型标识，参见{@link TabType}
	 * @return
	 */
	public abstract TabType getTabType();
	/**
	 * 
	 * 外部触发的Tab关闭事件，关闭后，当前对象将处于游离状态，
	 * 无法管理。所以此方法可用作销毁自己的信号
	 * 
	 */
	public abstract boolean close();
	
	
	/**
	 * 
	 * 
	 * 
	 * 枚举类型，标识Tab的分类
	 * @author Min
	 *
	 */
	public static enum TabType{
		DEVICE("DEVICE");
		
		
		private String type = null;
		TabType(String type){
			this.type = type;
		}
		
		public static TabType getType(String value){
			for(TabType type : values()){
				if(type.type.equals(value)) return type;
			}
			return null;
		}
	}
}
